The present disclosure relates generally to identifying problem areas of a software system, and more specifically to improving the efficiency of systems used to identify and prioritize potential and actual problem areas of large, multi-module software systems.
Mainframe computers process large amounts of data, such as census information, industry/consumer statistics and financial transactions. In addition to processing speed, effective mainframe computers provide internal design redundancy, extensive throughput capabilities and backward compatibility with older software. z/OS® is a 64-bit operating system for mainframe computers manufactured and sold by International Business Machines® (IBM®). z/OS offers the attributes of modern operating systems, along with backward compatibility to functionality that originated in the 1960s and subsequent decades.
Under the high demands of current computing environments, mainframe users are implementing increasingly more sophisticated configurations and systems. Mainframe users often tailor their operating system for a variety of performance benefits and space enhancements, which can unintentionally increase the number and frequency of potential software code problem areas. Also, operating systems that have several decades in the marketplace, and that prioritize backward compatibility, become increasingly large and complex with each new version of the system. For example, z/OS after several decades in the marketplace now includes several tens of thousands of computer libraries/modules of code, and each new z/OS release adds additional libraries/modules that further increase the number and frequency of potential software code problem areas.
Vendors routinely test software to identify problem areas. For example, IBM uses so-called “test case” programs to test z/OS. Test cases are small programs that are run on the operating system to verify quality. As previously noted, as a software system grows in size and complexity, the number of test cases associated with that software system grows as well.
Problem areas are also identified during usage. If an end user encounters a known problem area, the vendor's product support function can direct the user through steps to correct the problem area, such as applying a new software patch. If an end user encounters a new, unidentified problem area, the issue is typically catalogued and verified, then a solution (e.g., a software patch) is generated and implemented as need.
Thus, identifying and prioritizing problem areas can be a challenge for large software systems having unique user configurations, several tens of thousands of modules, several tens of thousands of test cases, backward compatibility and many decades in the marketplace. Such systems can require a significant investment of time and resources to run every applicable test case for every new release of the system. Accordingly, there is a need for devices, systems and methods to improve the efficiency of systems that identify and prioritize potential and actual problem areas of large, multi-module, multi-test case software systems.